application framework是一个完整的程序模型,具备标准应用软件所需的一切基本功能,像是文件存取、打印预视、资料交换...,以及这些功能的使用接口(
工具栏、状态列、
菜单、对话框)。
还没有学习任何一套Application Framework 的使用之前,就给你近乎学术性的定义,我可以想象对你而言绝对是「形而上的」(超物质的无形哲理),尤其如果你对“面向对象”(Object Oriented)也还没有深刻体会的话。形而上者谓之道,形而下者谓之器,我想能够舍器而直接近道者,几稀!但是,「定义」这种东西又似乎宜开宗明义摆在前头。我诚挚地希望你在阅读后续的技术章节时能够时而回来看看这些形而上的叙述。当你有所感受,技术面应该也进入某个层次了。
基本上你可以说,如果更以术语来说, 就是由一整组合作无间的「对象」架构起来的大模型。喔不不,当它还没有与你的程序产生火花的时候,它还只是有形无体,应该说是一组合作无间的「类别」架构起来的大模型。
这带来什么好处呢?程序员只要带个购物袋到「」采买,随你要买MDI 或OLE 或ODBC 或Printing Preview,回家后就可以轻易拼凑出一个色香味俱全的大餐。
「类别超级市场」就是C++ 类别库,以产品而言,在Microsoft 是MFC,在Borland是OWL,在IBM 则是OpenClass。这个类别库不只是类别库而已,传统的函数库(CRuntime 或Windows API)乃至于一般类别库提供的是生鲜超市中的一条鱼一支葱一颗大白菜,彼此之间没有什么关联,主掌中馈的你必须自己选材自己调理。能够称得上Application Framework 者,提供的是火锅拼盘(就是那种带回家通通丢下锅就好的那种),依你要的是白菜火锅鱼头火锅或是麻辣火锅,菜色带调理包都给你配好。当然这样的火锅拼盘是不能够就地吃的,你得给它加点能量。放把火烧它吧,这火就是所谓的application object(在MFC 程序中就是衍生自CWinApp 的一个全域性对象)。